package loja.model.despesa.cartao;

import java.math.BigDecimal;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Table;

import loja.model.conta.ContaAbstrata;
import loja.model.conta.impl.ContaCartaoCreditoCompra;
import loja.model.despesa.Despesa;

@Entity
@Table(name = "cartao_credito_compra")
public class CartaoCreditoCompra extends Despesa {

	private static final long serialVersionUID = 1L;

	@Enumerated(EnumType.STRING)
	private BandeiraType bandeira;
	private Double limite = 0d;

	public CartaoCreditoCompra() {
		super();
	}

	public CartaoCreditoCompra(BandeiraType bandeira, Double limite,
			int diaVencimento, BigDecimal valor) {
		super("CARTAO CREDITO " + bandeira.toString() + " COMPRA",
				diaVencimento, valor);
		this.bandeira = bandeira;
		this.limite = limite;
	}

	public BandeiraType getBandeira() {
		return bandeira;
	}

	public void setBandeira(BandeiraType bandeira) {
		setDescricao("CARTAO CREDITO " + bandeira.toString() + " COMPRA");
		this.bandeira = bandeira;
	}

	public Double getLimite() {
		return limite;
	}

	public void setLimite(Double limite) {
		this.limite = limite;
	}

	@Override
	protected ContaAbstrata buildConta() {
		return new ContaCartaoCreditoCompra();
	}

}
